/*
 * BloqueTextoSalida.cpp
 *
 *  Created on: 07/06/2010
 *      Author: nscuri
 */

#include "BloqueTextoSalida.h"
#include <string>
#include <fstream>

using namespace std;

BloqueTextoSalida::BloqueTextoSalida(string nombreArchivo) {
	size=1000000;
	cantCaracteresValidos=0;
	archivo=new ofstream(nombreArchivo.c_str(),ios::binary);
	bloque=new char[size];
	this->finArch=false;
	this->finBloq=false;
}

void BloqueTextoSalida::vaciarBloque()
{
	if(finArch) cantCaracteresValidos--;
	archivo->write(bloque,cantCaracteresValidos);
	this->finArch=false;
	this->finBloq=false;
	this->cantCaracteresValidos=0;
}

void BloqueTextoSalida::setChar(int n,char c)
{
	bloque[n]=c;
	cantCaracteresValidos++;
}



BloqueTextoSalida::~BloqueTextoSalida() {
	// TODO Auto-generated destructor stub
	archivo->close();
	delete archivo;
	delete[] bloque;
}

char BloqueTextoSalida::operator [](int n)
{
	return bloque[n];
}
